
#include "stdafx.h"
#include "CSVArray.h"

CCSVArray::CCSVArray(LPCSTR s)
{
	build(s, ',');
}

LPCSTR CCSVArray::find(LPCSTR p, LPCSTR s)
{
	intptr_t slen = strlen(s), plen = strlen(p) - slen;
	for (intptr_t n = 0, i = 0; i < plen; i++)
	{
		if (!n && memcmp(p + i, s, slen) == 0) return p + i;
		if (p[i] == '"') n ^= 1;
	}
	return nullptr;
}

LPCSTR CCSVArray::find(LPCSTR p, char c)
{
	if (!c) return CLPCSTRArray::find(p, c);
	for (intptr_t n = 0; p[0]; p++)
	{
		if (!n && p[0] == c) return p;
		if (p[0] == '"') n ^= 1;
	}
	return nullptr;
}
